package com.zbkj.crmeb.enums;

import com.baomidou.mybatisplus.core.enums.IEnum;
import com.fasterxml.jackson.annotation.JsonCreator;
import com.fasterxml.jackson.annotation.JsonValue;

/**
 * 商品类型
 * @Description:
 * @author daigb
 * @date 2021-01-15
 */
public enum BarCodeEnum implements IEnum<Integer> {
    /**
     * 自定义商品
     */
    INSIDE(1000, "自定义商品"),
    /**
     * 自定义商品
     */
    INSIDE_01(1001, "自定义商品"),
    /**
     * 欧洲商品
     */
    EUROPE(2000, " 欧洲商品"),
    /**
     * buyer商品
     */
    BUYER(3000, "buyer商品"),
    /**
     * ITZ020-CRIS商品
     */
    CRIS(3300, "ITZ020-CRIS商品"),
    /**
     * 里橙商品
     */
    LICHENG(3400, "里橙商品"),
    /**
     * unibuy境外商品
     */
    UNIBUY(3100, "unibuy境外商品"),

    /**
     * unibuy境内商品
     */
    UNIBUY1(3500, "unibuy境内商品"),
    /**
     * Tmall商品
     */
    TMALL(4000, "天猫商品"),
    /**
     * IM商品
     */
    IM(5000, "IM商品"),
    /**
     * XYY商品
     */
    XYY(6000, "喜羊羊商品"),
    /**
     * VIETTI商品
     */
    VIETTI(9000, "VIETTI商品"),
    /**
     * Leam商品
     */
    LEAM(2200, "Leam商品"),
    /**
     * BELLETTINI商品
     */
    BELLETTINI(2300, "BELLETTINI商品"),
    /**
     * 吉客云商品
     */
    JKY(8000, "吉客云商品"),
    /**
     * GB商品
     */
    GB(2400, "GB商品"),

    /**
     * CAROTTA商品
     */
    CAROTTA(2500, "CAROTTA商品"),
    /**
     * LAVITA商品
     */
    LAVITA(4100, "Lavita商品"),
    /**
     * LAVITA商品
     */
    MARZO13DE(4300, "MARZO13DE商品"),
    /**
     * EFASION商品
     */
    EFASION(4600, "EFASION商品"),
    /**
     * ORANGE商品
     */
    ORANGE(2900, "ORANGE商品"),

    COLTORTI( 2100,"COLTORTI商品"),

    DAIGO( 6200,"万象商品"),

    EASY(6700, "易镭商品"),

    CROSSEASY(9200, "跨境易镭")

    ;

    private final Integer code;
    private final String msg;

    BarCodeEnum(int code, String msg) {
        this.code = code;
        this.msg = msg;
    }

    public Integer getCode() {
        return code;
    }

    public String getMsg() {
        return msg;
    }

    @JsonCreator
    public static BarCodeEnum valueOf(Integer code) {
        for (BarCodeEnum value : values()) {
            if (code.equals(value.getCode())) {
                return value;
            }
        }
        return BarCodeEnum.INSIDE;
    }
    
    public static BarCodeEnum valueStringOf(String barCode) {
    	for (BarCodeEnum value : values()) {
    		if (barCode.startsWith(value.getCode().toString())) {
    			return value;
    		}
    	}
    	
    	return BarCodeEnum.INSIDE;
    }

    @Override
    @JsonValue
    public Integer getValue() {
        return code;
    }

}

